/**
 * 黑名单管理API
 */
import request from '@/utils/request'

// ==================== 商家黑名单 ====================

/**
 * 获取商家黑名单列表
 * @param {Object} query - 查询参数
 * @param {String} query.seller_id - 卖家ID
 * @param {String} query.seller_nick - 卖家昵称
 * @returns {Promise}
 */
export function getSellerBlacklistList(query) {
  return request({
    url: '/system/seller-blacklist/list',
    method: 'get',
    params: query
  })
}

/**
 * 根据ID获取商家黑名单
 * @param {Number} id - 黑名单ID
 * @returns {Promise}
 */
export function getSellerBlacklist(id) {
  return request({
    url: `/system/seller-blacklist/${id}`,
    method: 'get'
  })
}

/**
 * 添加商家黑名单
 * @param {Object} data - 黑名单数据
 * @param {String} data.seller_id - 卖家ID
 * @param {String} data.seller_nick - 卖家昵称
 * @param {String} data.reason - 拉黑原因
 * @param {String} data.remark - 备注
 * @returns {Promise}
 */
export function addSellerBlacklist(data) {
  return request({
    url: '/system/seller-blacklist',
    method: 'post',
    data: data
  })
}

/**
 * 更新商家黑名单
 * @param {Number} id - 黑名单ID
 * @param {Object} data - 更新数据
 * @returns {Promise}
 */
export function updateSellerBlacklist(id, data) {
  return request({
    url: `/system/seller-blacklist/${id}`,
    method: 'put',
    data: data
  })
}

/**
 * 删除商家黑名单
 * @param {Number} id - 黑名单ID
 * @returns {Promise}
 */
export function deleteSellerBlacklist(id) {
  return request({
    url: `/system/seller-blacklist/${id}`,
    method: 'delete'
  })
}

/**
 * 批量删除商家黑名单
 * @param {Array<Number>} ids - 黑名单ID数组
 * @returns {Promise}
 */
export function batchDeleteSellerBlacklist(ids) {
  return request({
    url: '/system/seller-blacklist',
    method: 'delete',
    params: {
      ids: ids.join(',')
    }
  })
}

/**
 * 从搜索结果直接拉黑商家
 * @param {Object} data - 商家信息
 * @param {String} data.seller_id - 卖家ID
 * @param {String} data.seller_nick - 卖家昵称
 * @returns {Promise}
 */
export function blacklistSellerFromSearch(data) {
  return request({
    url: '/system/seller-blacklist/from-search',
    method: 'post',
    data: data
  })
}

// ==================== 商品标题黑名单 ====================

/**
 * 获取标题黑名单列表
 * @param {Object} query - 查询参数
 * @param {String} query.keyword - 关键字
 * @param {String} query.match_type - 匹配类型
 * @returns {Promise}
 */
export function getTitleBlacklistList(query) {
  return request({
    url: '/system/title-blacklist/list',
    method: 'get',
    params: query
  })
}

/**
 * 根据ID获取标题黑名单
 * @param {Number} id - 黑名单ID
 * @returns {Promise}
 */
export function getTitleBlacklist(id) {
  return request({
    url: `/system/title-blacklist/${id}`,
    method: 'get'
  })
}

/**
 * 添加标题黑名单
 * @param {Object} data - 黑名单数据
 * @param {String} data.keyword - 关键字
 * @param {String} data.match_type - 匹配类型: contains/equals/regex
 * @param {String} data.reason - 拉黑原因
 * @param {String} data.remark - 备注
 * @returns {Promise}
 */
export function addTitleBlacklist(data) {
  return request({
    url: '/system/title-blacklist',
    method: 'post',
    data: data
  })
}

/**
 * 更新标题黑名单
 * @param {Number} id - 黑名单ID
 * @param {Object} data - 更新数据
 * @returns {Promise}
 */
export function updateTitleBlacklist(id, data) {
  return request({
    url: `/system/title-blacklist/${id}`,
    method: 'put',
    data: data
  })
}

/**
 * 删除标题黑名单
 * @param {Number} id - 黑名单ID
 * @returns {Promise}
 */
export function deleteTitleBlacklist(id) {
  return request({
    url: `/system/title-blacklist/${id}`,
    method: 'delete'
  })
}

/**
 * 批量删除标题黑名单
 * @param {Array<Number>} ids - 黑名单ID数组
 * @returns {Promise}
 */
export function batchDeleteTitleBlacklist(ids) {
  return request({
    url: '/system/title-blacklist',
    method: 'delete',
    params: {
      ids: ids.join(',')
    }
  })
}

